package com.tiger.project.domain;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;

import com.tiger.common.annotation.Excel;
import com.tiger.common.core.domain.BaseEntity;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;


/**
 * 【租金收款历史记录】对象 asset_receipt_history
 *
 * @author standard
 * @date 2022-09-29
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "asset_receipt_history对象", description = "【租金收款历史记录】内容")
public class AssetReceiptHistory extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    private Long id;

    /**
     * 租金收款id
     */
    @Excel(name = "租金收款id")
    @ApiModelProperty(value = "租金收款id")
    private Long assetReceiptId;

    /**
     * 合同发起编号
     */
    @Excel(name = "合同发起编号")
    @ApiModelProperty(value = "合同发起编号")
    private String contractSponsorNo;

    /**
     * 合同发起id
     */
    @Excel(name = "合同发起id")
    @ApiModelProperty(value = "合同发起id")
    private Long contractSponsorId;

    /**
     * 资产id
     */
    @Excel(name = "资产id")
    @ApiModelProperty(value = "资产id")
    private String assetId;

    /**
     * 资产名称  逗号拼接
     */
    @Excel(name = "资产名称  逗号拼接")
    @ApiModelProperty(value = "资产名称  逗号拼接")
    private String assetName;

    /**
     * 决策依据id
     */
    @Excel(name = "决策依据id")
    @ApiModelProperty(value = "决策依据id")
    private String decisionId;

    /**
     * 承租人id
     */
    @Excel(name = "承租人id")
    @ApiModelProperty(value = "承租人id")
    private Long lesseeId;

    /**
     * 承租人名称（客户名称）
     */
    @Excel(name = "承租人名称", readConverterExp = "客=户名称")
    @ApiModelProperty(value = "承租人名称")
    private String lesseeName;

    /**
     * 出租人id（开票单位id）
     */
    @Excel(name = "出租人id", readConverterExp = "开=票单位id")
    @ApiModelProperty(value = "出租人id")
    private Long lessorId;

    /**
     * 出租人名称（开票单位名称）
     */
    @Excel(name = "出租人名称", readConverterExp = "开=票单位名称")
    @ApiModelProperty(value = "出租人名称")
    private String lessorName;

    /**
     * 开票金额
     */
    @Excel(name = "开票金额")
    @ApiModelProperty(value = "开票金额")
    private BigDecimal invoiceAmount;

    /**
     * 减免金额
     */
    @Excel(name = "减免金额")
    @ApiModelProperty(value = "减免金额")
    private BigDecimal creditAmount;

    /**
     * 发票类型 1-普通发票 2-专用发票 3-收据
     */
    @Excel(name = "发票类型 1-普通发票 2-专用发票 3-收据")
    @ApiModelProperty(value = "发票类型 1-普通发票 2-专用发票 3-收据")
    private String isDedicated;

    /**
     * 开票期限
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开票期限", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "开票期限")
    private Date invoiceTime;

    /**
     * 租赁总额
     */
    @Excel(name = "租赁总额")
    @ApiModelProperty(value = "租赁总额")
    private BigDecimal rentRental;

    @ApiModelProperty(value = "收款次数")
    private Integer receiptNum;

    /**
     * 0-租金收款 1-租金进账
     */
    @ApiModelProperty(value = "0-租金收款 1-租金进账")
    private String isType;


    @ApiModelProperty(value = "账期开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date rentStateTime;

    @ApiModelProperty(value = "账期结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date rentEndTime;


    @ApiModelProperty(value = "决策依据集合")
    private List<CommonDecision> commonDecisionList = new ArrayList<>();


}
